﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace GUI
{
    public partial class FormDonHang : Form
    {
        Boolean dtp = false;
        public FormDonHang()
        {
            InitializeComponent();
        }
        #region bientoancuc
        public int dangnhap;
        public int manhanvien;
        public int makhachhang;
        public string email;
        public string matkhau;
        public string run;
        
        #endregion
        # region combobox_Load
        private void loadComboBoxLoaiDonHang()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("text");
            dt.Columns.Add("value");
            dt.Rows.Add("Tất cả", "");
            dt.Rows.Add("SIM", "SIM");
            dt.Rows.Add("CAR", "CAR");
            cmbLoaiDonHang.DisplayMember = "text";
            cmbLoaiDonHang.ValueMember = "value";
            cmbLoaiDonHang.DataSource = dt;
            cmbLoaiDonHang.SelectedIndex = 0;
        }

        private void loadComboBoxTinhTrang()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("text");
            dt.Columns.Add("value");
            dt.Rows.Add("Tất cả", "");
            dt.Rows.Add("Chờ", "Chờ");
            dt.Rows.Add("Thành Công", "Thành Công");
            dt.Rows.Add("Hủy", "Hủy");
            cmbTinhTrang.DisplayMember = "text";
            cmbTinhTrang.ValueMember = "value";
            cmbTinhTrang.DataSource = dt;
            cmbTinhTrang.SelectedIndex = 0;
            
        }
        #endregion 

        private void FormDonHang_Resize(object sender, EventArgs e)
        {
            pnMain.Location = new Point((this.Width - pnMain.Width) / 2, pnMain.Location.Y);

            if (WindowState == FormWindowState.Maximized)
            {
                this.ShowIcon = false;
            }
            else
            {
                this.ShowIcon = true;
            }
        }
        private void FormDonHang_Activated(object sender, EventArgs e)
        {
            int dem = 0;
            List<DonHangDTO> listDonhangDTO = new List<DonHangDTO>();
            if (dangnhap == 1)//nhan vien
            {
                btnHuy.Text = "Cập nhật";
                btnThanhToan.Visible = false;
                listDonhangDTO = DonHangBUS.DanhSachDonHang("", "", DateTime.MinValue, -1, ref dem, "");
            }
            else if (dangnhap == 2)//khach hang
            {
                //MessageBox.Show(dangnhap.ToString());
                btnHuy.Text = "Hủy đơn hàng";
                btnThanhToan.Visible = true;
                listDonhangDTO = DonHangBUS.DanhSachDonHang("", "", DateTime.MinValue, makhachhang, ref dem, "");
            }
            insertDataGirdView(listDonhangDTO);
            gbDanhSachDonHang.Text = "Danh sách đơn hàng: " + dem.ToString();
            //combobox TinhTrang:
            loadComboBoxLoaiDonHang();
            //combobox LoaiDonHang
            loadComboBoxTinhTrang();
            dtp = false;
        }


        private void btnLoc_Click(object sender, EventArgs e)
        {
            List<string> listRun = new List<string>();
            listRun.Add("Phantom error");
            listRun.Add("Phantom fix");
            //vd....
            FormRun fr = new FormRun();
            fr.listRun = listRun;
            fr.ShowDialog();
            run = fr.run;

            //Danh sach don hang theo tieu chí
            string madonhang = (string)cmbLoaiDonHang.SelectedValue;
            string tinhtrang = (string)cmbTinhTrang.SelectedValue;
            DateTime ngaymua = (dtpkNgayMua.Value);
            if (dtp == false)
            {
                ngaymua = DateTime.MinValue;
            }
            int dem = 0;

            List<DonHangDTO> listDonhangDTO = new List<DonHangDTO>();
            if (dangnhap == 1)//nhan vien
            {
                listDonhangDTO = DonHangBUS.DanhSachDonHang(madonhang, tinhtrang, ngaymua, -1, ref dem, run);
            }
            else if (dangnhap == 2)//khach hang
            {
                //MessageBox.Show(dangnhap.ToString());
                listDonhangDTO = DonHangBUS.DanhSachDonHang(madonhang, tinhtrang, ngaymua, makhachhang, ref dem, run);
            }
            insertDataGirdView(listDonhangDTO);
            //xuat so luong danh sach:
            gbDanhSachDonHang.Text = "Danh sách đơn hàng: " + dem.ToString();
            //MessageBox.Show(dem.ToString());
            //do vào datagird view (nên viết hàm đổ riêng)
        }
        private void btnXem_Click(object sender, EventArgs e)
        {
            if (dgvDonHang.Rows.Count > 0)
            {
                FormChiTietDonHang f = new FormChiTietDonHang();
                f.maDonHang = dgvDonHang.CurrentRow.Cells[1].Value.ToString();//lấy datagirdview curren
                List<string> listRun = new List<string>();
                listRun.Add("Dirty read error");
                listRun.Add("Dirty read fix");
                //vd....
                FormRun fr = new FormRun();
                fr.listRun = listRun;
                fr.ShowDialog();
                f.run = fr.run;
                f.ShowDialog();
            }
            else
            {
                MessageBox.Show("Không có đơn hàng.");
            }
        }
        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }
        private void btnHuy_Click(object sender, EventArgs e)
        {
            if(dgvDonHang.Rows.Count > 0)
            {
                if (dangnhap == 2)// khach hang
                {
                    string madonhang = dgvDonHang.CurrentRow.Cells["ColMaDonHang"].Value.ToString();
                    DialogResult res = MessageBox.Show("Hủy đơn hàng: " + madonhang, "Hủy đơn hàng", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                     if (res == DialogResult.Yes)
                     {
                         bool kq = DonHangBUS.CapNhatDonHang(madonhang, "Hủy", "");
                         if (kq)
                         {
                             MessageBox.Show("Bạn đã hủy đơn hàng.");
                         }
                         else
                         {
                             MessageBox.Show("Hủy giao tác.");
                         }
                     }
                }
                else if(dangnhap == 1)// nhan vien
                {
                    FormCapNhatDonHang f = new FormCapNhatDonHang();
                    f.madonhang = dgvDonHang.CurrentRow.Cells["ColMaDonHang"].Value.ToString();
                    f.ShowDialog();
                }
                FormDonHang_Activated(sender, e);
            }

        }
        private void btnLamLai_Click(object sender, EventArgs e)
        {
            FormDonHang_Activated( sender,  e);
        }

        private void dtpkNgayMua_ValueChanged(object sender, EventArgs e)
        {
            dtp = true;
        }

        private void insertDataGirdView(List<DonHangDTO> listDonhangDTO)
        {
            dgvDonHang.Rows.Clear();
            if (listDonhangDTO != null)
            {
                DonHangDTO item = new DonHangDTO();
                for (int i = 0; i < listDonhangDTO.Count; i++)
                {
                    item = listDonhangDTO[i];
                    string LoaiDonHang;
                    if (item.MaDonHang.Substring(0, 3).Equals("SIM"))
                    {
                        LoaiDonHang = "Sim";
                    }
                    else
                    {
                        LoaiDonHang = "Thẻ cào";
                    }
                    dgvDonHang.Rows.Add((i + 1).ToString(), item.MaDonHang, LoaiDonHang, string.Format("{0:#,0.##}", item.ThanhTien), item.NgayMua.ToString("dd/MM/yyyy"), item.NgayHetHan.ToString("dd/MM/yyyy"), item.TinhTrang);
                    dgvDonHang.Rows[i].ReadOnly = true;
                }

                btnHuy.Enabled = true;
                btnXem.Enabled = true;
                btnThanhToan.Enabled = true;
            }
            else
            {
                btnHuy.Enabled = false;
                btnXem.Enabled = false;
                btnThanhToan.Enabled = false;
            }
        }

        private void btnThanhToan_Click(object sender, EventArgs e)
        {
            FormThanhToan f = new FormThanhToan();
            f.maDonHang = dgvDonHang.CurrentRow.Cells["ColMaDonHang"].Value.ToString();
            f.ShowDialog();

            FormDonHang_Activated(sender, e);
        }
    }
}
